package com.jtny.nytb.equipment.dto.healthy;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jtny.component.entity.BaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author 智慧能源中心 - xqx
 * @package com.jtny.energymonitor.equipment.domain.healthy
 * @fileName gx-qyc
 * @Copyright© 2024 jtny
 * @Date 2024/3/26
 * 江投能源技术研究院 版权所有
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "设备健康信息", description = "设备健康信息")
public class DeviceHealthyDTO extends BaseDTO {

    @ApiModelProperty(value = "设备编号")
    private String deviceCode;

    @ApiModelProperty(value = "设备名称")
    private String deviceName;

    @ApiModelProperty(value = "设备类型（A类/B类/C类）")
    private String deviceType;

    @ApiModelProperty(value = "规格型号")
    private String specsModel;

    @ApiModelProperty(value = "设备是否投产(0:否，1：是)")
    private String produce;

    @ApiModelProperty(value = "设备投产时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    private Date produceTime;

    @ApiModelProperty(value = "设备开始投产时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    private Date produceStartTime;

    @ApiModelProperty(value = "设备结束投产时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    private Date produceEndTime;

    @ApiModelProperty(value = "安装位置")
    private String installLocation;

    @ApiModelProperty(value = "制造厂商")
    private String makers;

    @ApiModelProperty(value = "品牌")
    private String brand;

    @ApiModelProperty(value = "出厂编号")
    private String factoryNumber;

    @ApiModelProperty(value = "出厂日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    private Date factoryTime;

    @ApiModelProperty(value = "出厂开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    private Date factoryStartTime;

    @ApiModelProperty(value = "出厂结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    private Date factoryEndTime;

    @ApiModelProperty(value = "检修周期单位(日/周/月/年)")
    private String repairUnit;

    @ApiModelProperty(value = "检修周期值")
    private String repairValue;

    @ApiModelProperty(value = "上一次检修时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    private Date preRepairTime;

    @ApiModelProperty(value = "上一次开始检修时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    private Date preRepairStartTime;

    @ApiModelProperty(value = "上一次结束检修时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    private Date preRepairEndTime;

    @ApiModelProperty(value = "安装单位")
    private String installationUnit;

    @ApiModelProperty(value = "设备维护人")
    private String deviceMaintenance;

    @ApiModelProperty(value = "生产厂家联系人")
    private String makeContact;

    @ApiModelProperty(value = "生产厂家联系方式")
    private String makeContactPhone;

    @ApiModelProperty(value = "资产编码")
    private String assetCode;

    @ApiModelProperty(value = "技术参数")
    private String techParam;

    @ApiModelProperty(value = "设备采购金额")
    private BigDecimal purchaseAmount;

    @ApiModelProperty(value = "折旧金额")
    private BigDecimal depreciatedAmount;

    @ApiModelProperty(value = "设备健康状态")
    private String healthy;

    @ApiModelProperty(value = "淘汰目录(0:否，1：是)")
    private String eliminate;

    @ApiModelProperty(value = "能效比/效率阀值")
    private String energyRatio;

    @ApiModelProperty(value = "表记编码")
    private String tableEncode;

    @ApiModelProperty(value = "表记编码id")
    private Long tableEncodeId;

    @ApiModelProperty(value = "分页no")
    private Integer pageNo;

    @ApiModelProperty(value = "分页size")
    private Integer pageSize;

    //计划停机时间
    //外部因素停机时间
    //故障停机时间
    @ApiModelProperty(value = "计划停机时间")
    private BigDecimal planTimeHours;

    @ApiModelProperty(value = "外部因素停机时间")
    private BigDecimal outTimeHours;

    @ApiModelProperty(value = "故障停机时间")
    private BigDecimal faultTimeHours;


    List<DeviceHealthyDateDTO> deviceHealthyDateDTOs;

    List<DeviceHealthyEngerDTO> deviceHealthyEngerDTOs;



}
